library(here)
library(tidyverse)
library(cowplot)
library(GGally)
theme_set(theme_light())
library(scuttle)
library(scater)
library(kableExtra)
library(SCandwichCompanion)## Directory setup
here_root <- "benchmarks/lupus"
here::i_am(file.path(here_root, "analysis/lupus-mock-results.Rmd"))
#> here() starts at /Users/jg/Desktop/PhD/DD_project/DD_git
res_dir <- here::here(here_root, "results")
fig_dir <- here::here(here_root, "figures")methods: qbGLM_offset_squeeze, bGLM, qbGLM,
qbGLM_offsetcelltypes: B_mem, ncMdatatype: pbres_files <- map(celltypes, ~ get_mock_res_files(
dataset = "lupus",
datatype = datatype,
methods = methods,
celltype = .x
)) %>%
set_names(celltypes)
res_list <- map_depth(res_files, 2, readRDS)
## Check for expected data structure
stopifnot(unlist(map_depth(res_list, 3, ~ is.data.frame(.x$results))))data_files <- map(celltypes, ~ get_SCE_files(
dataset = "lupus", which = "mock_replicates",
celltype = .x
)) %>%
set_names(celltypes)
sce_objects <- map(data_files, readRDS)map_dfr(sce_objects,
~ map_dfr(.x, function(x) c(nrows = nrow(x), ncols = ncol(x)),
.id = "replicate"
),
.id = "celltypes"
)Subjects are divided across mock groups as follows:
map(sce_objects[[1]], function(x) table(x$ind_cov, x$mock_group))
#> $replicate_1
#>
#> A B
#> IGTB141_IGTB141 144 0
#> IGTB143_IGTB143 84 0
#> IGTB195_IGTB195 0 119
#> IGTB469_IGTB469 89 0
#> IGTB498_IGTB498 208 0
#> IGTB508_IGTB508 278 0
#> IGTB514_IGTB514 373 0
#> IGTB645_IGTB645 123 0
#> IGTB670_IGTB670 0 64
#> IGTB826_IGTB826 0 511
#> IGTB884_IGTB884 128 0
#> IGTB986_IGTB986 137 0
#> IGTB1372_IGTB1372 0 136
#> IGTB1506_IGTB1506 0 83
#> IGTB1539_IGTB1539 305 0
#> IGTB1575_IGTB1575 0 164
#> IGTB1650_IGTB1650 0 137
#> IGTB1762_IGTB1762 176 0
#> IGTB1768_IGTB1768 107 0
#> IGTB1789_IGTB1789 0 341
#> IGTB1793_IGTB1793 0 119
#> IGTB1814_IGTB1814 485 0
#> IGTB1815_IGTB1815 0 168
#> IGTB1826_IGTB1826 0 70
#> IGTB1827_IGTB1827 122 0
#> IGTB1828_IGTB1828 356 0
#> IGTB1840_IGTB1840 0 328
#> IGTB1844_IGTB1844 0 177
#> IGTB1871_IGTB1871 0 241
#> IGTB1895_IGTB1895 231 0
#> IGTB1901_IGTB1901 150 0
#> IGTB1906_IGTB1906 0 185
#> IGTB1908_IGTB1908 139 0
#> IGTB1913_IGTB1913 156 0
#> IGTB1916_IGTB1916 0 183
#> IGTB1921_IGTB1921 0 181
#> IGTB1952_IGTB1952 199 0
#> IGTB1966_IGTB1966 0 567
#> IGTB1974_IGTB1974 0 129
#> IGTB1982_IGTB1982 0 244
#> IGTB1987_IGTB1987 0 145
#> IGTB1996_IGTB1996 88 0
#> IGTB2007_IGTB2007 149 0
#> IGTB2065_IGTB2065 0 205
#>
#> $replicate_2
#>
#> A B
#> IGTB141_IGTB141 144 0
#> IGTB143_IGTB143 0 84
#> IGTB195_IGTB195 119 0
#> IGTB469_IGTB469 89 0
#> IGTB498_IGTB498 0 208
#> IGTB508_IGTB508 0 278
#> IGTB514_IGTB514 0 373
#> IGTB645_IGTB645 0 123
#> IGTB670_IGTB670 0 64
#> IGTB826_IGTB826 511 0
#> IGTB884_IGTB884 0 128
#> IGTB986_IGTB986 137 0
#> IGTB1372_IGTB1372 0 136
#> IGTB1506_IGTB1506 0 83
#> IGTB1539_IGTB1539 305 0
#> IGTB1575_IGTB1575 164 0
#> IGTB1650_IGTB1650 137 0
#> IGTB1762_IGTB1762 0 176
#> IGTB1768_IGTB1768 107 0
#> IGTB1789_IGTB1789 0 341
#> IGTB1793_IGTB1793 0 119
#> IGTB1814_IGTB1814 485 0
#> IGTB1815_IGTB1815 168 0
#> IGTB1826_IGTB1826 70 0
#> IGTB1827_IGTB1827 122 0
#> IGTB1828_IGTB1828 356 0
#> IGTB1840_IGTB1840 0 328
#> IGTB1844_IGTB1844 0 177
#> IGTB1871_IGTB1871 241 0
#> IGTB1895_IGTB1895 0 231
#> IGTB1901_IGTB1901 150 0
#> IGTB1906_IGTB1906 185 0
#> IGTB1908_IGTB1908 0 139
#> IGTB1913_IGTB1913 0 156
#> IGTB1916_IGTB1916 0 183
#> IGTB1921_IGTB1921 181 0
#> IGTB1952_IGTB1952 199 0
#> IGTB1966_IGTB1966 0 567
#> IGTB1974_IGTB1974 0 129
#> IGTB1982_IGTB1982 244 0
#> IGTB1987_IGTB1987 0 145
#> IGTB1996_IGTB1996 0 88
#> IGTB2007_IGTB2007 149 0
#> IGTB2065_IGTB2065 205 0
#>
#> $replicate_3
#>
#> A B
#> IGTB141_IGTB141 0 144
#> IGTB143_IGTB143 0 84
#> IGTB195_IGTB195 0 119
#> IGTB469_IGTB469 89 0
#> IGTB498_IGTB498 0 208
#> IGTB508_IGTB508 0 278
#> IGTB514_IGTB514 0 373
#> IGTB645_IGTB645 0 123
#> IGTB670_IGTB670 64 0
#> IGTB826_IGTB826 511 0
#> IGTB884_IGTB884 128 0
#> IGTB986_IGTB986 0 137
#> IGTB1372_IGTB1372 136 0
#> IGTB1506_IGTB1506 83 0
#> IGTB1539_IGTB1539 305 0
#> IGTB1575_IGTB1575 164 0
#> IGTB1650_IGTB1650 0 137
#> IGTB1762_IGTB1762 0 176
#> IGTB1768_IGTB1768 0 107
#> IGTB1789_IGTB1789 341 0
#> IGTB1793_IGTB1793 119 0
#> IGTB1814_IGTB1814 485 0
#> IGTB1815_IGTB1815 0 168
#> IGTB1826_IGTB1826 0 70
#> IGTB1827_IGTB1827 122 0
#> IGTB1828_IGTB1828 356 0
#> IGTB1840_IGTB1840 328 0
#> IGTB1844_IGTB1844 177 0
#> IGTB1871_IGTB1871 0 241
#> IGTB1895_IGTB1895 231 0
#> IGTB1901_IGTB1901 150 0
#> IGTB1906_IGTB1906 185 0
#> IGTB1908_IGTB1908 139 0
#> IGTB1913_IGTB1913 0 156
#> IGTB1916_IGTB1916 0 183
#> IGTB1921_IGTB1921 181 0
#> IGTB1952_IGTB1952 0 199
#> IGTB1966_IGTB1966 567 0
#> IGTB1974_IGTB1974 129 0
#> IGTB1982_IGTB1982 0 244
#> IGTB1987_IGTB1987 0 145
#> IGTB1996_IGTB1996 0 88
#> IGTB2007_IGTB2007 149 0
#> IGTB2065_IGTB2065 0 205
#>
#> $replicate_4
#>
#> A B
#> IGTB141_IGTB141 0 144
#> IGTB143_IGTB143 84 0
#> IGTB195_IGTB195 119 0
#> IGTB469_IGTB469 0 89
#> IGTB498_IGTB498 0 208
#> IGTB508_IGTB508 0 278
#> IGTB514_IGTB514 373 0
#> IGTB645_IGTB645 0 123
#> IGTB670_IGTB670 64 0
#> IGTB826_IGTB826 0 511
#> IGTB884_IGTB884 128 0
#> IGTB986_IGTB986 0 137
#> IGTB1372_IGTB1372 0 136
#> IGTB1506_IGTB1506 0 83
#> IGTB1539_IGTB1539 305 0
#> IGTB1575_IGTB1575 164 0
#> IGTB1650_IGTB1650 137 0
#> IGTB1762_IGTB1762 0 176
#> IGTB1768_IGTB1768 107 0
#> IGTB1789_IGTB1789 341 0
#> IGTB1793_IGTB1793 0 119
#> IGTB1814_IGTB1814 0 485
#> IGTB1815_IGTB1815 168 0
#> IGTB1826_IGTB1826 0 70
#> IGTB1827_IGTB1827 0 122
#> IGTB1828_IGTB1828 0 356
#> IGTB1840_IGTB1840 0 328
#> IGTB1844_IGTB1844 0 177
#> IGTB1871_IGTB1871 0 241
#> IGTB1895_IGTB1895 0 231
#> IGTB1901_IGTB1901 150 0
#> IGTB1906_IGTB1906 185 0
#> IGTB1908_IGTB1908 139 0
#> IGTB1913_IGTB1913 156 0
#> IGTB1916_IGTB1916 183 0
#> IGTB1921_IGTB1921 181 0
#> IGTB1952_IGTB1952 0 199
#> IGTB1966_IGTB1966 567 0
#> IGTB1974_IGTB1974 0 129
#> IGTB1982_IGTB1982 0 244
#> IGTB1987_IGTB1987 0 145
#> IGTB1996_IGTB1996 88 0
#> IGTB2007_IGTB2007 149 0
#> IGTB2065_IGTB2065 205 0
#>
#> $replicate_5
#>
#> A B
#> IGTB141_IGTB141 0 144
#> IGTB143_IGTB143 0 84
#> IGTB195_IGTB195 0 119
#> IGTB469_IGTB469 89 0
#> IGTB498_IGTB498 208 0
#> IGTB508_IGTB508 0 278
#> IGTB514_IGTB514 373 0
#> IGTB645_IGTB645 0 123
#> IGTB670_IGTB670 64 0
#> IGTB826_IGTB826 511 0
#> IGTB884_IGTB884 0 128
#> IGTB986_IGTB986 137 0
#> IGTB1372_IGTB1372 136 0
#> IGTB1506_IGTB1506 0 83
#> IGTB1539_IGTB1539 305 0
#> IGTB1575_IGTB1575 164 0
#> IGTB1650_IGTB1650 137 0
#> IGTB1762_IGTB1762 176 0
#> IGTB1768_IGTB1768 0 107
#> IGTB1789_IGTB1789 341 0
#> IGTB1793_IGTB1793 0 119
#> IGTB1814_IGTB1814 0 485
#> IGTB1815_IGTB1815 0 168
#> IGTB1826_IGTB1826 70 0
#> IGTB1827_IGTB1827 0 122
#> IGTB1828_IGTB1828 0 356
#> IGTB1840_IGTB1840 0 328
#> IGTB1844_IGTB1844 177 0
#> IGTB1871_IGTB1871 0 241
#> IGTB1895_IGTB1895 231 0
#> IGTB1901_IGTB1901 150 0
#> IGTB1906_IGTB1906 0 185
#> IGTB1908_IGTB1908 0 139
#> IGTB1913_IGTB1913 0 156
#> IGTB1916_IGTB1916 183 0
#> IGTB1921_IGTB1921 181 0
#> IGTB1952_IGTB1952 0 199
#> IGTB1966_IGTB1966 567 0
#> IGTB1974_IGTB1974 0 129
#> IGTB1982_IGTB1982 0 244
#> IGTB1987_IGTB1987 145 0
#> IGTB1996_IGTB1996 0 88
#> IGTB2007_IGTB2007 149 0
#> IGTB2065_IGTB2065 205 0## Get runtimes for each celltype
runtimes <- map(res_list, ~ map_dfr(.x, get_runtimes, depth = 1, .id = "method"))res_tables <- map_depth(
res_list, 2,
~ get_aggregated_rep_tables(.x, depth = 1)
) %>%
map(combine_tables, .id = "method")runtime_plots <- imap(runtimes,
~ plot_run_times(.x, width = 0.2, height = 0) +
ggtitle(.y)
)n_sign_summaries <- map(res_tables, function(tmp) {
tmp %>%
group_by(replicate, method) %>%
summarise(
sum(FDR < 0.01),
sum(FDR < 0.05),
sum(FDR < 0.1),
.groups = "drop"
)
})| method | sum(FDR < 0.01) | sum(FDR < 0.05) | sum(FDR < 0.1) |
|---|---|---|---|
| Replicate: 1 | |||
| bGLM | 1 | 1 | 2 |
| qbGLM | 0 | 1 | 1 |
| qbGLM_offset | 0 | 1 | 1 |
| qbGLM_offset_squeeze | 0 | 1 | 1 |
| Replicate: 2 | |||
| bGLM | 0 | 2 | 3 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 3 | |||
| bGLM | 0 | 0 | 3 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 4 | |||
| bGLM | 0 | 0 | 0 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 5 | |||
| bGLM | 0 | 0 | 0 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| method | sum(FDR < 0.01) | sum(FDR < 0.05) | sum(FDR < 0.1) |
|---|---|---|---|
| Replicate: 1 | |||
| bGLM | 0 | 1 | 1 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 2 | |||
| bGLM | 1 | 1 | 4 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 3 | |||
| bGLM | 1 | 1 | 1 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 4 | |||
| bGLM | 2 | 3 | 5 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
| Replicate: 5 | |||
| bGLM | 1 | 1 | 1 |
| qbGLM | 0 | 0 | 0 |
| qbGLM_offset | 0 | 0 | 0 |
| qbGLM_offset_squeeze | 0 | 0 | 0 |
pval_figs <- map(res_tables, pval_hist)For each replicate, calculate average log-normalized counts, using
scuttle::calculateAverage().
## Calculate average counts for each replicate
avg_counts <- map_depth(sce_objects, 2,
~ calculateAverage(counts(.x))
)
## Split res_tables per replicate
res_tables_split <- map(res_tables, ~ split(.x, .x$replicate))
## Add average counts to results tables
## Note that for the 'combined' celltypes, the average counts will be the same
## for each celltype contrast
res_tables_split <- map2(
res_tables_split, avg_counts,
~ map2(.x, .y, function(res, avg_cnt) {
res$avg_count <- avg_cnt[res$gene]
res
})
)Make p-value histograms stratified by the average counts.
pval_hist_strat_plots <- map(res_tables_split,
~ imap(.x, function(y, replicate) {
replicate <- str_remove(replicate, "replicate_")
title <- paste("Replicate:", replicate)
pval_hist_strat(y, n_groups = 6) +
ggtitle(title)
})
)#> [1] "2023-04-05 17:40:33 CEST"
#> Local: main /Users/jg/Desktop/PhD/DD_project/DD_git
#> Remote: main @ origin (git@github.com:jgilis/DD_benchmark.git)
#> Head: [aae8aba] 2023-04-05: run GLM on sc and pb
#> ─ Session info ───────────────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.1.3 (2022-03-10)
#> os macOS Big Sur/Monterey 10.16
#> system x86_64, darwin17.0
#> ui X11
#> language (EN)
#> collate C
#> ctype UTF-8
#> tz Europe/Brussels
#> date 2023-04-05
#> pandoc 2.17.1.1 @ /Users/jg/opt/anaconda3/bin/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> annotate 1.72.0 2021-10-26 [1] Bioconductor
#> AnnotationDbi 1.56.2 2021-11-09 [1] Bioconductor
#> aod 1.3.2 2022-04-02 [1] CRAN (R 4.1.2)
#> argparse * 2.2.2 2023-02-15 [1] CRAN (R 4.1.2)
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.1.0)
#> backports 1.4.1 2021-12-13 [1] CRAN (R 4.1.2)
#> beachmat 2.10.0 2021-10-26 [1] Bioconductor
#> beeswarm 0.4.0 2021-06-01 [1] CRAN (R 4.1.0)
#> Biobase * 2.54.0 2021-10-26 [1] Bioconductor
#> BiocGenerics * 0.40.0 2021-10-26 [1] Bioconductor
#> BiocNeighbors 1.12.0 2021-10-26 [1] Bioconductor
#> BiocParallel 1.28.3 2021-12-09 [1] Bioconductor
#> BiocSingular 1.10.0 2021-10-26 [1] Bioconductor
#> Biostrings 2.62.0 2021-10-26 [1] Bioconductor
#> bit 4.0.4 2020-08-04 [1] CRAN (R 4.1.0)
#> bit64 4.0.5 2020-08-30 [1] CRAN (R 4.1.0)
#> bitops 1.0-7 2021-04-24 [1] CRAN (R 4.1.0)
#> blme 1.0-5 2021-01-05 [1] CRAN (R 4.1.0)
#> blob 1.2.3 2022-04-10 [1] CRAN (R 4.1.2)
#> bluster 1.4.0 2021-10-26 [1] Bioconductor
#> boot 1.3-28 2021-05-03 [1] CRAN (R 4.1.3)
#> broom 0.8.0 2022-04-13 [1] CRAN (R 4.1.2)
#> bslib 0.4.0 2022-07-16 [1] CRAN (R 4.1.2)
#> cachem 1.0.6 2021-08-19 [1] CRAN (R 4.1.0)
#> caTools 1.18.2 2021-03-28 [1] CRAN (R 4.1.0)
#> cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.1.0)
#> circlize 0.4.15 2022-05-10 [1] CRAN (R 4.1.2)
#> cli 3.6.0 2023-01-09 [1] CRAN (R 4.1.2)
#> clue 0.3-60 2021-10-11 [1] CRAN (R 4.1.0)
#> cluster 2.1.3 2022-03-28 [1] CRAN (R 4.1.2)
#> codetools 0.2-18 2020-11-04 [1] CRAN (R 4.1.3)
#> colorspace 2.1-0 2023-01-23 [1] CRAN (R 4.1.2)
#> ComplexHeatmap 2.10.0 2021-10-26 [1] Bioconductor
#> cowplot * 1.1.1 2020-12-30 [1] CRAN (R 4.1.0)
#> crayon 1.5.1 2022-03-26 [1] CRAN (R 4.1.2)
#> data.table 1.14.2 2021-09-27 [1] CRAN (R 4.1.0)
#> DBI 1.1.2 2021-12-20 [1] CRAN (R 4.1.0)
#> dbplyr 2.1.1 2021-04-06 [1] CRAN (R 4.1.0)
#> DelayedArray 0.20.0 2021-10-26 [1] Bioconductor
#> DelayedMatrixStats 1.16.0 2021-10-26 [1] Bioconductor
#> DESeq2 1.34.0 2021-10-26 [1] Bioconductor
#> digest 0.6.29 2021-12-01 [1] CRAN (R 4.1.2)
#> doParallel 1.0.17 2022-02-07 [1] CRAN (R 4.1.2)
#> dplyr * 1.0.9 2022-04-28 [1] CRAN (R 4.1.2)
#> dqrng 0.3.0 2021-05-01 [1] CRAN (R 4.1.0)
#> DT 0.23 2022-05-10 [1] CRAN (R 4.1.2)
#> edgeR 3.36.0 2021-10-26 [1] Bioconductor
#> ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.1.0)
#> evaluate 0.15 2022-02-18 [1] CRAN (R 4.1.2)
#> fansi 1.0.4 2023-01-22 [1] CRAN (R 4.1.2)
#> farver 2.1.1 2022-07-06 [1] CRAN (R 4.1.3)
#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.0)
#> findpython 1.0.8 2023-03-14 [1] CRAN (R 4.1.2)
#> forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.1.0)
#> foreach 1.5.2 2022-02-02 [1] CRAN (R 4.1.2)
#> fs 1.5.2 2021-12-08 [1] CRAN (R 4.1.2)
#> future 1.27.0 2022-07-22 [1] CRAN (R 4.1.2)
#> future.apply 1.9.0 2022-04-25 [1] CRAN (R 4.1.3)
#> genefilter 1.76.0 2021-10-26 [1] Bioconductor
#> geneplotter 1.72.0 2021-10-26 [1] Bioconductor
#> generics 0.1.3 2022-07-05 [1] CRAN (R 4.1.2)
#> GenomeInfoDb * 1.30.1 2022-01-30 [1] Bioconductor
#> GenomeInfoDbData 1.2.7 2021-12-18 [1] Bioconductor
#> GenomicRanges * 1.46.1 2021-11-18 [1] Bioconductor
#> GetoptLong 1.0.5 2020-12-15 [1] CRAN (R 4.1.0)
#> GGally * 2.1.2 2021-06-21 [1] CRAN (R 4.1.0)
#> ggbeeswarm 0.6.0 2017-08-07 [1] CRAN (R 4.1.0)
#> ggplot2 * 3.4.1 2023-02-10 [1] CRAN (R 4.1.2)
#> ggrepel 0.9.1 2021-01-15 [1] CRAN (R 4.1.0)
#> git2r 0.31.0 2023-01-26 [1] CRAN (R 4.1.2)
#> glmmTMB 1.1.3 2022-03-13 [1] CRAN (R 4.1.2)
#> GlobalOptions 0.1.2 2020-06-10 [1] CRAN (R 4.1.0)
#> globals 0.16.0 2022-08-05 [1] CRAN (R 4.1.2)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.1.2)
#> gplots 3.1.3 2022-04-25 [1] CRAN (R 4.1.3)
#> gridExtra 2.3 2017-09-09 [1] CRAN (R 4.1.0)
#> gtable 0.3.1 2022-09-01 [1] CRAN (R 4.1.2)
#> gtools 3.9.3 2022-07-11 [1] CRAN (R 4.1.2)
#> haven 2.5.0 2022-04-15 [1] CRAN (R 4.1.2)
#> here * 1.0.1 2020-12-13 [1] CRAN (R 4.1.0)
#> highr 0.9 2021-04-16 [1] CRAN (R 4.1.0)
#> hms 1.1.1 2021-09-26 [1] CRAN (R 4.1.0)
#> htmltools 0.5.3 2022-07-18 [1] CRAN (R 4.1.2)
#> htmlwidgets 1.5.4 2021-09-08 [1] CRAN (R 4.1.0)
#> httpuv 1.6.5 2022-01-05 [1] CRAN (R 4.1.2)
#> httr 1.4.3 2022-05-04 [1] CRAN (R 4.1.2)
#> iCOBRA 1.22.2 2021-12-19 [1] Bioconductor
#> igraph 1.4.1 2023-02-24 [1] CRAN (R 4.1.2)
#> IRanges * 2.28.0 2021-10-26 [1] Bioconductor
#> irlba 2.3.5.1 2022-10-03 [1] CRAN (R 4.1.2)
#> iterators 1.0.14 2022-02-05 [1] CRAN (R 4.1.2)
#> jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.1.0)
#> jsonlite 1.8.0 2022-02-22 [1] CRAN (R 4.1.2)
#> kableExtra * 1.3.4 2021-02-20 [1] CRAN (R 4.1.2)
#> KEGGREST 1.34.0 2021-10-26 [1] Bioconductor
#> KernSmooth 2.23-20 2021-05-03 [1] CRAN (R 4.1.3)
#> knitr 1.39 2022-04-26 [1] CRAN (R 4.1.2)
#> labeling 0.4.2 2020-10-20 [1] CRAN (R 4.1.0)
#> later 1.3.0 2021-08-18 [1] CRAN (R 4.1.0)
#> lattice 0.20-45 2021-09-22 [1] CRAN (R 4.1.3)
#> lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.1.2)
#> limma 3.50.3 2022-04-07 [1] Bioconductor
#> listenv 0.8.0 2019-12-05 [1] CRAN (R 4.1.0)
#> lme4 1.1-29 2022-04-07 [1] CRAN (R 4.1.2)
#> lmerTest 3.1-3 2020-10-23 [1] CRAN (R 4.1.0)
#> locfit 1.5-9.7 2023-01-02 [1] CRAN (R 4.1.2)
#> lubridate 1.8.0 2021-10-07 [1] CRAN (R 4.1.0)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.1.2)
#> MASS 7.3-57 2022-04-22 [1] CRAN (R 4.1.2)
#> Matrix 1.4-1 2022-03-23 [1] CRAN (R 4.1.2)
#> MatrixGenerics * 1.6.0 2021-10-26 [1] Bioconductor
#> matrixStats * 0.63.0 2022-11-18 [1] CRAN (R 4.1.2)
#> memoise 2.0.1 2021-11-26 [1] CRAN (R 4.1.2)
#> metapod 1.2.0 2021-10-26 [1] Bioconductor
#> mime 0.12 2021-09-28 [1] CRAN (R 4.1.0)
#> minqa 1.2.4 2014-10-09 [1] CRAN (R 4.1.0)
#> modelr 0.1.8 2020-05-19 [1] CRAN (R 4.1.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.0)
#> muscat 1.8.2 2022-03-10 [1] Bioconductor
#> nlme 3.1-157 2022-03-25 [1] CRAN (R 4.1.2)
#> nloptr 2.0.3 2022-05-26 [1] CRAN (R 4.1.2)
#> numDeriv 2016.8-1.1 2019-06-06 [1] CRAN (R 4.1.0)
#> parallelly 1.32.1 2022-07-21 [1] CRAN (R 4.1.2)
#> pbkrtest 0.5.1 2021-03-09 [1] CRAN (R 4.1.0)
#> pillar 1.8.1 2022-08-19 [1] CRAN (R 4.1.2)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.0)
#> plyr 1.8.7 2022-03-24 [1] CRAN (R 4.1.2)
#> png 0.1-7 2013-12-03 [1] CRAN (R 4.1.0)
#> prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.1.0)
#> progress 1.2.2 2019-05-16 [1] CRAN (R 4.1.0)
#> promises 1.2.0.1 2021-02-11 [1] CRAN (R 4.1.0)
#> purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.1.0)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.0)
#> rbibutils 2.2.8 2022-04-11 [1] CRAN (R 4.1.2)
#> RColorBrewer 1.1-3 2022-04-03 [1] CRAN (R 4.1.2)
#> Rcpp 1.0.10 2023-01-22 [1] CRAN (R 4.1.2)
#> RCurl 1.98-1.10 2023-01-27 [1] CRAN (R 4.1.2)
#> Rdpack 2.3 2022-03-23 [1] CRAN (R 4.1.2)
#> readr * 2.1.2 2022-01-30 [1] CRAN (R 4.1.2)
#> readxl 1.4.0 2022-03-28 [1] CRAN (R 4.1.2)
#> reprex 2.0.1 2021-08-05 [1] CRAN (R 4.1.0)
#> reshape 0.8.9 2022-04-12 [1] CRAN (R 4.1.2)
#> reshape2 1.4.4 2020-04-09 [1] CRAN (R 4.1.0)
#> RhpcBLASctl 0.21-247.1 2021-11-05 [1] CRAN (R 4.1.0)
#> rjson 0.2.21 2022-01-09 [1] CRAN (R 4.1.2)
#> rlang 1.0.6 2022-09-24 [1] CRAN (R 4.1.2)
#> rmarkdown 2.14 2022-04-25 [1] CRAN (R 4.1.3)
#> ROCR 1.0-11 2020-05-02 [1] CRAN (R 4.1.0)
#> rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.1.2)
#> RSQLite 2.2.14 2022-05-07 [1] CRAN (R 4.1.2)
#> rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.1.0)
#> rsvd 1.0.5 2021-04-16 [1] CRAN (R 4.1.0)
#> rvest 1.0.2 2021-10-16 [1] CRAN (R 4.1.0)
#> S4Vectors * 0.32.4 2022-03-29 [1] Bioconductor
#> sass 0.4.2 2022-07-16 [1] CRAN (R 4.1.2)
#> ScaledMatrix 1.2.0 2021-10-26 [1] Bioconductor
#> scales 1.2.1 2022-08-20 [1] CRAN (R 4.1.2)
#> SCandwichCompanion * 0.1.0 2023-04-05 [1] local
#> scater * 1.22.0 2021-10-26 [1] Bioconductor
#> scran 1.22.1 2021-11-14 [1] Bioconductor
#> sctransform 0.3.3 2022-01-13 [1] CRAN (R 4.1.2)
#> scuttle * 1.4.0 2021-10-26 [1] Bioconductor
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.1.0)
#> shape 1.4.6 2021-05-19 [1] CRAN (R 4.1.0)
#> shiny 1.7.2 2022-07-19 [1] CRAN (R 4.1.2)
#> shinyBS 0.61.1 2022-04-17 [1] CRAN (R 4.1.2)
#> shinydashboard 0.7.2 2021-09-30 [1] CRAN (R 4.1.0)
#> SingleCellExperiment * 1.16.0 2021-10-26 [1] Bioconductor
#> sparseMatrixStats 1.6.0 2021-10-26 [1] Bioconductor
#> statmod 1.5.0 2023-01-06 [1] CRAN (R 4.1.2)
#> stringi 1.7.8 2022-07-11 [1] CRAN (R 4.1.2)
#> stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.1.0)
#> SummarizedExperiment * 1.24.0 2021-10-26 [1] Bioconductor
#> survival 3.3-1 2022-03-03 [1] CRAN (R 4.1.2)
#> svglite 2.1.1 2023-01-10 [1] CRAN (R 4.1.2)
#> systemfonts 1.0.4 2022-02-11 [1] CRAN (R 4.1.2)
#> tibble * 3.1.8 2022-07-22 [1] CRAN (R 4.1.2)
#> tidyr * 1.2.0 2022-02-01 [1] CRAN (R 4.1.2)
#> tidyselect 1.1.2 2022-02-21 [1] CRAN (R 4.1.2)
#> tidyverse * 1.3.1 2021-04-15 [1] CRAN (R 4.1.0)
#> TMB 1.9.0 2022-05-27 [1] CRAN (R 4.1.2)
#> tzdb 0.3.0 2022-03-28 [1] CRAN (R 4.1.2)
#> UpSetR 1.4.0 2019-05-22 [1] CRAN (R 4.1.0)
#> utf8 1.2.3 2023-01-31 [1] CRAN (R 4.1.2)
#> variancePartition 1.24.1 2022-04-12 [1] Bioconductor
#> vctrs 0.5.2 2023-01-23 [1] CRAN (R 4.1.2)
#> vipor 0.4.5 2017-03-22 [1] CRAN (R 4.1.0)
#> viridis 0.6.2 2021-10-13 [1] CRAN (R 4.1.0)
#> viridisLite 0.4.1 2022-08-22 [1] CRAN (R 4.1.2)
#> webshot 0.5.4 2022-09-26 [1] CRAN (R 4.1.2)
#> withr 2.5.0 2022-03-03 [1] CRAN (R 4.1.2)
#> xfun 0.31 2022-05-10 [1] CRAN (R 4.1.2)
#> XML 3.99-0.9 2022-02-24 [1] CRAN (R 4.1.2)
#> xml2 1.3.3 2021-11-30 [1] CRAN (R 4.1.2)
#> xtable 1.8-4 2019-04-21 [1] CRAN (R 4.1.0)
#> XVector 0.34.0 2021-10-26 [1] Bioconductor
#> yaml 2.3.5 2022-02-21 [1] CRAN (R 4.1.2)
#> zlibbioc 1.40.0 2021-10-26 [1] Bioconductor
#>
#> [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library
#>
#> ──────────────────────────────────────────────────────────────────────────────────────